Иерархия классов исключений в C#
Иерархия исключений в C#
Корневой класс:
Система.Exception
Основные прямые и косвенные подклассы Exception:
Из пространства имён Система:
Система.ApplicationException— устаревший базовый класс для пользовательских исключений (не рекомендуется к использованию).Система.SystemException— базовый класс для всех системных исключений.Система.ArgumentExceptionСистема.ArgumentNullExceptionСистема.ArgumentOutOfRangeException
Система.ArithmeticExceptionСистема.DivideByZeroExceptionСистема.OverflowException
Система.ArrayTypeMismatchExceptionСистема.BadImageFormatExceptionСистема.CannotUnloadAppDomainExceptionСистема.ComponentModel.InvalidAsynchronousStateExceptionСистема.ComponentModel.InvalidEnumArgumentExceptionСистема.DataMisalignedExceptionСистема.ExecutionEngineException— устарело (заменено наСистема.Runtime.InteropServices.SEHExceptionили аналоги).Система.FieldAccessExceptionСистема.FormatExceptionСистема.UriFormatException
Система.IndexOutOfRangeExceptionСистема.InvalidCastExceptionСистема.InvalidOperationExceptionСистема.ObjectDisposedExceptionСистема.Threading.SynchronizationLockException
Система.IO.IOExceptionСистема.IO.DirectoryNotFoundExceptionСистема.IO.DriveNotFoundExceptionСистема.IO.EndOfStreamExceptionСистема.IO.FileLoadExceptionСистема.IO.FileNotFoundExceptionСистема.IO.PathTooLongException
Система.MemberAccessExceptionСистема.FieldAccessExceptionСистема.MethodAccessExceptionСистема.MissingMemberExceptionСистема.MissingFieldExceptionСистема.MissingMethodException
Система.NotImplementedExceptionСистема.NotSupportedExceptionСистема.NullReferenceExceptionСистема.OutOfMemoryExceptionСистема.PlatformNotSupportedExceptionСистема.RankExceptionСистема.Reflection.AmbiguousMatchExceptionСистема.Reflection.InvalidFilterCriteriaExceptionСистема.Reflection.ReflectionTypeLoadExceptionСистема.Resources.MissingManifestResourceExceptionСистема.Runtime.InteropServices.COMExceptionСистема.Runtime.InteropServices.ExternalExceptionСистема.Runtime.InteropServices.SEHException
Система.Безопасность.SecurityExceptionСистема.StackOverflowExceptionСистема.Threading.ThreadAbortException— устарело в .NET Core/.NET 5+ (больше не генерируется).Система.TimeoutExceptionСистема.TypeInitializationExceptionСистема.TypeLoadExceptionСистема.UnauthorizedAccessException
Из других распространённых пространств имён:
System.Net.WebException(в .NET Framework; в .NET Core заменено наSystem.Net.Http.HttpRequestException)System.Net.Http.HttpRequestExceptionСистема.Text.DecoderFallbackExceptionСистема.Text.EncoderFallbackExceptionСистема.Threading.Задачи.TaskCanceledException
Особенности:
- Нет checked-исключений: компилятор не требует объявления или перехвата исключений.
- Исключения времени выполнения: большинство ошибок (например,
NullReferenceException,IndexOutOfRangeException) возникают только при выполнении. - Платформо-зависимые исключения: например,
PlatformNotSupportedExceptionиспользуется в кроссплатформенных API, когда функция недоступна на текущей ОС. - Устаревшие исключения: некоторые исключения (например,
ApplicationException,ThreadAbortException) сохранены для совместимости, но не используются в современном коде.
Как получить список программно:
Полный список встроенных исключений нельзя получить динамически без анализа метаданных сборок. Однако можно перечислить все типы из mscorlib (или Система.Private.CoreLib в .NET Core) с помощью рефлексии:
using Система;
using Система.Linq;
var exceptionTypes = typeof(object).Assembly
.GetTypes()
.Where(t => t.IsSubclassOf(typeof(Exception)) && !t.IsAbstract)
.OrderBy(t => t.FullName);
foreach (var type in exceptionTypes)
Console.WriteLine(type.FullName);
Этот код выведет все конкретные (не абстрактные) типы исключений из основной сборки среды выполнения.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Исходный код хранится в файлах .cs для C. Там пишется логика приложения. В проекте можно создавать новые файлы, и через внутреннее API платформы будет взаимодействие между ними. Допустим, можно… Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Справочник-шпаргалка по конфигурациям в C — типы, синтаксис, стандартная библиотека, типовые паттерны. Не заменяет пошаговое обучение. Учебный курс — раздел. Набор советов, правил, принципов и обычаев в разработке на этом языке. Кавычки, точки, запятые, скобки и прочие знаки препинания. Ключевое слово Назначение Пример ------------------------------------ if Условное выполнение блока кода при истинности выражения if (count 0) Process(); else Альтернативное выполнение при ложности… Набор функций, которые включены в стандартную библиотеку языка. И если глобальные пространства имён применяются для общего и не используются для всего подряд, то в каждом файле добавляются свои, нужные для кода файла пространства - это file-scoped namespaces,… манипулировать данными (арифметические, логические, сравнительные операторы). Самый базовый способ ветвления — оператор if. Он проверяет условие и, если оно истинно (true), выполняет блок кода. Ошибка (error) — это, как правило, системный сбой, который невозможно обработать (например, нехватка памяти). Исключение (exception) — это управляемое отклонение, которое можно предвидеть,… Гайд по установке и настройке с написанием первой программы и её запуском.C# - язык программирования платформы .NET
Что требуется знать перед началом изучения языка программирования C#
Справочник по конфигурациям в C#
Рекомендации по разработке на C#
Синтаксис и пунктуация в C#
Ключевые слова языка C#
Встроенные функции и методы C#
Пространства имён в C#
Управляющие конструкции и логические операторы
Условные выражения и ветвления
Обработка исключений в C#
Первая программа на C#